package manejadores;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import censo.db;
import entidades.Transformador;

public class ManejadorTransformador {
	private Transformador transformador;
	private db conexion = null;
	public Transformador getTransformador() {
		return transformador;
	}
	public void setTransformador(Transformador transformador) {
		this.transformador = transformador;
	}
	public db getConexion() {
		return conexion;
	}
	public void setConexion(db conexion) {
		this.conexion = conexion;
	}
	public ManejadorTransformador(db conexion) {
		super();
		this.conexion = conexion;
	}
	public ManejadorTransformador(Transformador transformador, db conexion) {
		super();
		this.transformador = transformador;
		this.conexion = conexion;
	}
	
	public boolean Add() throws SQLException {
		boolean result = false;
		String sql = "INSERT INTO transformador (CODIGO,CAPACIDAD,TIPO,TIERRA,DIRECCION,LATITUD," +
				"LONGITUD,ALTITUD,CC_CANTIDAD,CC_TECNOLOGIA,PR_CANTIDAD," +
				"PR_TECNOLOGIA,TM_ELECTRONICO,TM_TPS,TM_TCS,FECHA_SISTEMA,USUARIO,NOTAS)" + 
		"VALUE (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,SYSDATE(),?,?)";
		
		java.sql.PreparedStatement pst = conexion.getConnection().prepareStatement(sql);
		pst.setString(1, transformador.getCodigo());
		pst.setString(2, transformador.getCapacidad());
		pst.setString(3, transformador.getTipo());
		pst.setString(4, transformador.getTierra());
		pst.setString(5, transformador.getDireccion());
		pst.setString(6, transformador.getLatitud());
		pst.setString(7, transformador.getLongitud());
		pst.setString(8, transformador.getAltitud());
		pst.setString(9, transformador.getCc_cantidad());
		pst.setString(10, transformador.getCc_tecnologia());
		pst.setString(11, transformador.getPr_cantidad());
		pst.setString(12, transformador.getPr_tecnologia());
		pst.setString(13, transformador.getTm_electronico());
		pst.setString(14, transformador.getTm_tps());
		pst.setString(15, transformador.getTm_tcs());
		pst.setString(16, transformador.getUsuario());
		pst.setString(17, transformador.getNotas());
		if (conexion.Update(pst) > 0) {
			conexion.Commit();
			result = true;
		}
		return result;
	}
	
	public boolean Add(Transformador transformador) throws SQLException {
		boolean result = false;
		String sql = "INSERT INTO transformador (CODIGO,CAPACIDAD,TIPO,TIERRA,DIRECCION,LATITUD," +
				"LONGITUD,ALTITUD,CC_CANTIDAD,CC_TECNOLOGIA,PR_CANTIDAD," +
				"PR_TECNOLOGIA,TM_ELECTRONICO,TM_TPS,TM_TCS,FECHA_SISTEMA,USUARIO,NOTAS)" + 
		"VALUE (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,SYSDATE(),?,?)";
		
		java.sql.PreparedStatement pst = conexion.getConnection().prepareStatement(sql);
		pst.setString(1, transformador.getCodigo());
		pst.setString(2, transformador.getCapacidad());
		pst.setString(3, transformador.getTipo());
		pst.setString(4, transformador.getTierra());
		pst.setString(5, transformador.getDireccion());
		pst.setString(6, transformador.getLatitud());
		pst.setString(7, transformador.getLongitud());
		pst.setString(8, transformador.getAltitud());
		pst.setString(9, transformador.getCc_cantidad());
		pst.setString(10, transformador.getCc_tecnologia());
		pst.setString(11, transformador.getPr_cantidad());
		pst.setString(12, transformador.getPr_tecnologia());
		pst.setString(13, transformador.getTm_electronico());
		pst.setString(14, transformador.getTm_tps());
		pst.setString(15, transformador.getTm_tcs());
		pst.setString(16, transformador.getUsuario());
		pst.setString(17, transformador.getNotas());
		if (conexion.Update(pst) > 0) {
			conexion.Commit();
			result = true;
		}
		return result;
	}
	
	public boolean Update(String key) throws SQLException {
		boolean result = false;
		String sql = "UPDATE transformador SET CODIGO=?,CAPACIDAD=?,TIPO=?,TIERRA=?,DIRECCION=?,LATITUD=?," +
				"LONGITUD=?,ALTITUD=?,CC_CANTIDAD=?,CC_TECNOLOGIA=?,PR_CANTIDAD=?," +
				"PR_TECNOLOGIA=?,TM_ELECTRONICO=?,TM_TPS=?,TM_TCS=?,NOTAS=? WHERE CODIGO=?"; 
		
		java.sql.PreparedStatement pst = conexion.getConnection().prepareStatement(sql);
		pst.setString(1, transformador.getCodigo());
		pst.setString(2, transformador.getCapacidad());
		pst.setString(3, transformador.getTipo());
		pst.setString(4, transformador.getTierra());
		pst.setString(5, transformador.getDireccion());
		pst.setString(6, transformador.getLatitud());
		pst.setString(7, transformador.getLongitud());
		pst.setString(8, transformador.getAltitud());
		pst.setString(9, transformador.getCc_cantidad());
		pst.setString(10, transformador.getCc_tecnologia());
		pst.setString(11, transformador.getPr_cantidad());
		pst.setString(12, transformador.getPr_tecnologia());
		pst.setString(13, transformador.getTm_electronico());
		pst.setString(14, transformador.getTm_tps());
		pst.setString(15, transformador.getTm_tcs());
		pst.setString(16, transformador.getNotas());
		pst.setString(17, key);
		if (conexion.Update(pst) > 0) {
			conexion.Commit();
			result = true;
		}
		return result;
	}
	
	public boolean Update(String key, Transformador transformador) throws SQLException {
		boolean result = false;
		String sql = "UPDATE transformador SET CODIGO=?,CAPACIDAD=?,TIPO=?,TIERRA=?,DIRECCION=?,LATITUD=?," +
				"LONGITUD=?,ALTITUD=?,CC_CANTIDAD=?,CC_TECNOLOGIA=?,PR_CANTIDAD=?," +
				"PR_TECNOLOGIA=?,TM_ELECTRONICO=?,TM_TPS=?,TM_TCS=?,NOTAS=? WHERE CODIGO=?"; 
		
		java.sql.PreparedStatement pst = conexion.getConnection().prepareStatement(sql);
		pst.setString(1, transformador.getCodigo());
		pst.setString(2, transformador.getCapacidad());
		pst.setString(3, transformador.getTipo());
		pst.setString(4, transformador.getTierra());
		pst.setString(5, transformador.getDireccion());
		pst.setString(6, transformador.getLatitud());
		pst.setString(7, transformador.getLongitud());
		pst.setString(8, transformador.getAltitud());
		pst.setString(9, transformador.getCc_cantidad());
		pst.setString(10, transformador.getCc_tecnologia());
		pst.setString(11, transformador.getPr_cantidad());
		pst.setString(12, transformador.getPr_tecnologia());
		pst.setString(13, transformador.getTm_electronico());
		pst.setString(14, transformador.getTm_tps());
		pst.setString(15, transformador.getTm_tcs());
		pst.setString(16, transformador.getNotas());
		pst.setString(17, key);
		if (conexion.Update(pst) > 0) {
			conexion.Commit();
			result = true;
		}
		return result;
	}
	
	public boolean Remove(String key) throws SQLException {
		boolean result = false;
		String sql = "DELETE FROM transformador WHERE CODIGO = ?"; 
		
		java.sql.PreparedStatement pst = conexion.getConnection().prepareStatement(sql);
		pst.setString(1, key);
		if (conexion.Update(pst) > 0) {
			conexion.Commit();
			result = true;
		}
		return result;
	}
	
	public boolean Find(String key) throws SQLException {
		boolean result = false;
		String sql = "SELECT * transformador WHERE CODIGO = ?"; 
		java.sql.PreparedStatement pst = conexion.getConnection().prepareStatement(sql);
		pst.setString(1, key);
		ResultSet rs = conexion.Query(pst);
		if (rs.next()) {
			transformador = new Transformador();
			transformador.setCodigo(rs.getString("CODIGO"));
			transformador.setCapacidad(rs.getString("CAPACIDAD"));
			transformador.setTipo(rs.getString("TIPO"));
			transformador.setTierra(rs.getString("TIERRA"));
			transformador.setDireccion(rs.getString("DIRECCION"));
			transformador.setLatitud(rs.getString("LATITUD"));
			transformador.setLongitud(rs.getString("LONGITUD"));
			transformador.setAltitud(rs.getString("ALTITUD"));
			transformador.setCc_cantidad(rs.getString("CC_CANTIDAD"));
			transformador.setCc_tecnologia(rs.getString("CC_TECNOLOGIA"));
			transformador.setPr_cantidad(rs.getString("PR_CANTIDAD"));
			transformador.setPr_tecnologia(rs.getString("PR_TECNOLOGIA"));
			transformador.setTm_electronico(rs.getString("TM_ELECTRONICO"));
			transformador.setTm_tps(rs.getString("TM_TPS"));
			transformador.setTm_tcs(rs.getString("TM_TCS"));
			transformador.setNotas(rs.getString("NOTAS"));
			transformador.setUsuario(rs.getString("USUARIO"));
			transformador.setFecha(rs.getString("FECHA_SISTEMA"));
			result = true;
		}
		return result;
	}
	
	public ArrayList<Transformador> List() throws SQLException {
		ArrayList<Transformador> lista = new ArrayList<Transformador>();
		String sql = "SELECT * transformador ORDER BY FECHA"; 
		ResultSet rs = conexion.Query(sql);
		if (rs.next()) {
			Transformador transformador = new Transformador();
			transformador.setCodigo(rs.getString("CODIGO"));
			transformador.setCapacidad(rs.getString("CAPACIDAD"));
			transformador.setTipo(rs.getString("TIPO"));
			transformador.setTierra(rs.getString("TIERRA"));
			transformador.setDireccion(rs.getString("DIRECCION"));
			transformador.setLatitud(rs.getString("LATITUD"));
			transformador.setLongitud(rs.getString("LONGITUD"));
			transformador.setAltitud(rs.getString("ALTITUD"));
			transformador.setCc_cantidad(rs.getString("CC_CANTIDAD"));
			transformador.setCc_tecnologia(rs.getString("CC_TECNOLOGIA"));
			transformador.setPr_cantidad(rs.getString("PR_CANTIDAD"));
			transformador.setPr_tecnologia(rs.getString("PR_TECNOLOGIA"));
			transformador.setTm_electronico(rs.getString("TM_ELECTRONICO"));
			transformador.setTm_tps(rs.getString("TM_TPS"));
			transformador.setTm_tcs(rs.getString("TM_TCS"));
			transformador.setNotas(rs.getString("NOTAS"));
			transformador.setUsuario(rs.getString("USUARIO"));
			transformador.setFecha(rs.getString("FECHA_SISTEMA"));
			
			lista.add(transformador);

		}
		return lista;
	}
	

}
